# 中值滤波

# 注：
# 1）随着核大小逐渐变大，会让图像变得更加模糊；
# 2）核必须是大于1的奇数，如3、5、7等；
# 3）在代码 dst = cv2.medianBlur(src, ksize) 中 填写核大小时，只需填写一个数即可，如3、5、7等，对比均值滤波函数用法。

import cv2
import numpy as np
import matplotlib.pyplot as plt

# 读取图片
img = cv2.imread('src/lena_noise.png')

# 中值滤波（核大小为3）
result = cv2.medianBlur(img, 3)  # 可以更改核的大小
# 显示图像
cv2.imshow("source img", img)
cv2.imshow("medianBlur", result)
# 等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()

# 中值滤波（核大小为5）
result = cv2.medianBlur(img, 5)  # 可以更改核的大小
# 显示图像
cv2.imshow("source img", img)
cv2.imshow("medianBlur", result)
# 等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()

# 中值滤波（核大小为7）
result = cv2.medianBlur(img, 7)  # 可以更改核的大小
# 显示图像
cv2.imshow("source img", img)
cv2.imshow("medianBlur", result)
# 等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
